package zhongbo.java.air.monitor.service;

import org.springframework.data.domain.Page;
import zhongbo.java.air.common.vo.PageVo;
import zhongbo.java.air.monitor.model.AirAlertLog;

import java.util.Date;
import java.util.List;

public interface IAirAlertLogService<A> {
    /*
    * 更新
    * */
//    AirAlertLog update(AirAlertLog airAlertLog);
    AirAlertLog edit(AirAlertLog edit);
    /*
    * 插入
    * */
//    AirAlertLog insert(AirAlertLog airAlertLog);
    AirAlertLog add(AirAlertLog entity);
    /*
    * 删除
    * */
//    boolean deleteById(String id);
    boolean delete(String entityId);
    /*
    * 查询
    * */
//    AirAlertLog queryById(String id);
    AirAlertLog findOne(String entityId);
    /*
     * 分页
     * */
    PageVo<AirAlertLog> findPage(int page, int pageSize, String keyword, String fields, String oderByField, boolean orderByAsc);


    /**
     * 查询指定时间内的告警日志记录
     *
     * @param icao        ICAO代码
     * @param triggerTime 触发时间
     * @return 告警日志记录列表
     */
    AirAlertLog queryRecentAlerts(String icao, Date triggerTime) throws RuntimeException;
    /**
     * 查询手动触发的告警日志记录
     *
     * @param alertType   告警类型
     * @param status      告警状态
     * @param startTime   开始时间
     * @param endTime     结束时间
     * @return 告警日志记录列表
     */
    List<AirAlertLog> queryManualAlerts(String alertType, String status, String startTime, String endTime);
}
